JavaFX এ Dialogs এবং Alerts ব্যবহৃত হয় ব্যবহারকারীর সঙ্গে ইন্টারঅ্যাকশন করার জন্য, যেমন একটি তথ্য দেখানো, কোনো প্রশ্ন করা, অথবা কিছু নিশ্চিতকরণ নেওয়া। Dialogs এবং Alerts সাধারণত সিস্টেমের উইন্ডো বা পপ-আপ আকারে প্রদর্শিত হয় এবং এটি ব্যবহারকারীকে নির্দেশনা, সতর্কতা বা তথ্য প্রদান করতে সাহায্য করে।
JavaFX এ Dialogs এবং Alerts ব্যবহারের জন্য কিছু বিল্ট-ইন ক্লাস রয়েছে, যেমন:
- Alert: এটি সাধারণত সিস্টেমের সতর্কতা, তথ্য, বা প্রশ্ন প্রদর্শন করতে ব্যবহৃত হয়।
- TextInputDialog: এটি ব্যবহারকারীর কাছ থেকে ইনপুট সংগ্রহ করার জন্য ব্যবহৃত হয়।
- ChoiceDialog: এটি একটি নির্বাচনের জন্য ডায়ালগ প্রদর্শন করে।
- FileChooser: ফাইল নির্বাচন করার জন্য একটি ডায়ালগ প্রদর্শন করে।
1. Alert Class
Alert ক্লাসটি সাধারণত একটি সংক্ষিপ্ত তথ্য বা সতর্কতা প্রদর্শনের জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের সতর্কতা দেখাতে পারে, যেমন INFORMATION, WARNING, ERROR, এবং CONFIRMATION।
উদাহরণ: Alert ব্যবহার
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AlertExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি তথ্য Alert তৈরি করা
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("This is an Information Dialog");
alert.setContentText("Welcome to the JavaFX Application!");
// Alert দেখানো
alert.showAndWait();
StackPane root = new StackPane();
Scene scene = new Scene(root, 400, 300);
primaryStage.setTitle("JavaFX Alert Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে একটি
Alertতৈরি করা হয়েছে, যাINFORMATIONটাইপের। এটি একটি সাধারণ ইনফরমেশন বার্তা প্রদর্শন করবে। setTitle()মেথডে ডায়ালগের টাইটেল,setHeaderText()মেথডে হেডার এবংsetContentText()মেথডে কন্টেন্ট টেক্সট সেট করা হয়েছে।showAndWait()মেথড ডায়ালগটি প্রদর্শন করে এবং ব্যবহারকারীর কাছ থেকে রেসপন্স না পাওয়া পর্যন্ত অপেক্ষা করে।
2. Confirm Dialog (Confirmation Alert)
Alert এর মাধ্যমে আপনি একটি কনফার্মেশন ডায়ালগও প্রদর্শন করতে পারেন, যা ব্যবহারকারীকে দুটি অপশন (যেমন "OK" এবং "Cancel") প্রদান করে।
উদাহরণ: Confirm Dialog ব্যবহার
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ConfirmDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি কনফার্মেশন ডায়ালগ তৈরি করা
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Confirmation Dialog");
alert.setHeaderText("Do you want to proceed?");
alert.setContentText("Click OK to continue or Cancel to stop.");
// ডায়ালগ দেখানো এবং রেসপন্স পাওয়া
alert.showAndWait().ifPresent(response -> {
if (response == ButtonType.OK) {
System.out.println("User clicked OK");
} else {
System.out.println("User clicked Cancel");
}
});
StackPane root = new StackPane();
Scene scene = new Scene(root, 400, 300);
primaryStage.setTitle("JavaFX Confirm Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে একটি
Alertতৈরি করা হয়েছে যাCONFIRMATIONটাইপের। এটি ব্যবহারকারীকে "OK" বা "Cancel" অপশন দিতে পারে। showAndWait()মেথডের মাধ্যমে ডায়ালগটি দেখানো হয় এবং ব্যবহারকারীর রেসপন্স পাওয়ার পরifPresentব্লক ব্যবহার করে রেসপন্সের উপর ভিত্তি করে নির্দিষ্ট অ্যাকশন নেওয়া হয়।
3. TextInputDialog
TextInputDialog ব্যবহার করে আপনি ব্যবহারকারীর কাছ থেকে ইনপুট নিতে পারেন।
উদাহরণ: TextInputDialog ব্যবহার
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextInputDialog;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.util.Optional;
public class TextInputDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
// TextInputDialog তৈরি করা
TextInputDialog dialog = new TextInputDialog();
dialog.setTitle("Text Input Dialog");
dialog.setHeaderText("Please enter your name:");
dialog.setContentText("Name:");
// ইনপুট পাওয়ার জন্য ডায়ালগ দেখানো
Optional<String> result = dialog.showAndWait();
result.ifPresent(name -> {
System.out.println("User's name: " + name);
});
StackPane root = new StackPane();
Scene scene = new Scene(root, 400, 300);
primaryStage.setTitle("JavaFX Text Input Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
TextInputDialogতৈরি করা হয়েছে, যা ব্যবহারকারীর কাছ থেকে নাম ইনপুট গ্রহণ করবে।showAndWait()মেথডের মাধ্যমে ডায়ালগটি দেখানো হয় এবং ব্যবহারকারী ইনপুট দিলে তাOptional<String>আকারে পাওয়া যায়।
4. ChoiceDialog
ChoiceDialog ব্যবহার করে আপনি ব্যবহারকারীর কাছ থেকে একটি নির্দিষ্ট নির্বাচন নিতে পারেন।
উদাহরণ: ChoiceDialog ব্যবহার
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceDialog;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class ChoiceDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
// একটি পছন্দ ডায়ালগ তৈরি করা
List<String> choices = Arrays.asList("Option 1", "Option 2", "Option 3");
ChoiceDialog<String> dialog = new ChoiceDialog<>("Option 1", choices);
dialog.setTitle("Choice Dialog");
dialog.setHeaderText("Choose an option");
dialog.setContentText("Select your option:");
// ডায়ালগ দেখানো এবং নির্বাচন পাওয়া
Optional<String> result = dialog.showAndWait();
result.ifPresent(choice -> {
System.out.println("User chose: " + choice);
});
StackPane root = new StackPane();
Scene scene = new Scene(root, 400, 300);
primaryStage.setTitle("JavaFX Choice Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
ChoiceDialogব্যবহার করে তিনটি অপশন থেকে একটি নির্বাচন করতে বলা হয়েছে।showAndWait()মেথডের মাধ্যমে ডায়ালগটি দেখানো হয় এবং ব্যবহারকারীর নির্বাচিত অপশনটি পাওয়া যায়।
5. FileChooser
FileChooser ব্যবহার করে ব্যবহারকারীকে ফাইল নির্বাচন করতে বলা হয়।
উদাহরণ: FileChooser ব্যবহার
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import java.io.File;
public class FileChooserExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Open File");
// ফাইল চুজার তৈরি করা
FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Text Files", "*.txt"));
btn.setOnAction(e -> {
File file = fileChooser.showOpenDialog(primaryStage);
if (file != null) {
System.out.println("File chosen: " + file.getAbsolutePath());
}
});
Scene scene = new Scene(btn, 400, 300);
primaryStage.setTitle("JavaFX FileChooser Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
FileChooserব্যবহার করে একটি ফাইল নির্বাচন করার জন্য ডায়ালগ প্রদর্শন করা হয়েছে।.showOpenDialog(primaryStage)মেথড ব্যবহার করে ফাইল চুজার ডায়ালগ দেখানো হয়েছে এবং নির্বাচিত ফাইলটি পাওয়া গেছে।
JavaFX তে Dialogs এবং Alerts ব্যবহার করে আপনি ব্যবহারকারীর সাথে সহজেই যোগাযোগ করতে পারেন, যেমন:
- তথ্য বা সতর্কতা প্রদর্শন করা (Alert)
- ব্যবহারকারীর থেকে ইনপুট বা পছন্দ নেওয়া (TextInputDialog, ChoiceDialog)
- ফাইল নির্বাচন করা (FileChooser)
- ব্যবহারকারীর কনফার্মেশন নেওয়া (Confirmation Alert)
এই ডায়ালগগুলি JavaFX অ্যাপ্লিকেশনে ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব অভিজ্ঞতা তৈরি করতে সাহায্য করে।
JavaFX এ Dialogs এবং Alerts ব্যবহার করে আপনি ইউজার ইন্টারঅ্যাকশন ও তথ্য প্রদানের জন্য পপ-আপ উইন্ডো তৈরি করতে পারেন। Dialogs এবং Alerts সাধারণত সতর্কবার্তা, কনফার্মেশন, ইনপুট গ্রহণ, এবং সাধারণ তথ্য প্রদর্শনের জন্য ব্যবহৃত হয়।
JavaFX Dialogs এবং Alerts
- Alerts: এটা একটি সহজ ধরনের ডায়ালগ উইন্ডো যা ইউজারের কাছে কিছু সতর্কবার্তা বা তথ্য প্রদর্শন করে।
- Dialogs: এটি সাধারণত Alert এর থেকে একটু বেশি কাস্টমাইজযোগ্য এবং ইনপুট গ্রহণ করতে সক্ষম।
1. Alerts:
Alert ক্লাসটি সাধারণত ইউজারের কাছে একটি সতর্কবার্তা, তথ্য বা কনফার্মেশন জানাতে ব্যবহৃত হয়। এর মাধ্যমে আপনি CONFIRMATION, INFORMATION, WARNING, ERROR, ইত্যাদি টাইপের সতর্কবার্তা প্রদর্শন করতে পারেন।
Alert এর উদাহরণ:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AlertExample extends Application {
@Override
public void start(Stage primaryStage) {
// Information Alert তৈরি করা
Alert infoAlert = new Alert(AlertType.INFORMATION);
infoAlert.setTitle("Information");
infoAlert.setHeaderText("Information Header");
infoAlert.setContentText("This is an information alert.");
// Show the information alert
infoAlert.showAndWait();
// Warning Alert তৈরি করা
Alert warningAlert = new Alert(AlertType.WARNING);
warningAlert.setTitle("Warning");
warningAlert.setHeaderText("Warning Header");
warningAlert.setContentText("This is a warning alert.");
// Show the warning alert
warningAlert.showAndWait();
// Error Alert তৈরি করা
Alert errorAlert = new Alert(AlertType.ERROR);
errorAlert.setTitle("Error");
errorAlert.setHeaderText("Error Header");
errorAlert.setContentText("This is an error alert.");
// Show the error alert
errorAlert.showAndWait();
// Layout এবং Scene সেট করা
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("JavaFX Alerts Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- AlertType.INFORMATION: এটি সাধারণত সাধারণ তথ্য প্রদর্শন করতে ব্যবহৃত হয়।
- AlertType.WARNING: এটি সতর্কবার্তা প্রদর্শন করে।
- AlertType.ERROR: এটি ত্রুটি বার্তা প্রদর্শন করে।
showAndWait()মেথডটি আলার্টটি দেখানোর পর, ইউজার যখন আলার্টটি বন্ধ করে তখন প্রোগ্রাম আবার চালু হয়।
2. Confirmation Alert:
Alert এর CONFIRMATION টাইপটি ব্যবহার করে ইউজার থেকে কোনো সিদ্ধান্ত গ্রহণ করা যেতে পারে, যেমন "Yes" বা "No" বাটন।
Confirmation Alert উদাহরণ:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ConfirmationAlertExample extends Application {
@Override
public void start(Stage primaryStage) {
// Confirmation Alert তৈরি করা
Alert confirmationAlert = new Alert(AlertType.CONFIRMATION);
confirmationAlert.setTitle("Confirmation");
confirmationAlert.setHeaderText("Do you want to continue?");
confirmationAlert.setContentText("Click Yes to continue or No to exit.");
// Show the confirmation alert and wait for a response
ButtonType result = confirmationAlert.showAndWait().orElse(ButtonType.CANCEL);
if (result == ButtonType.YES) {
System.out.println("User clicked YES");
} else if (result == ButtonType.NO) {
System.out.println("User clicked NO");
} else {
System.out.println("User cancelled");
}
// Layout and Scene setup
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("Confirmation Alert Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- ButtonType.YES এবং ButtonType.NO ব্যবহার করে ইউজারের উত্তর যাচাই করা হয়।
showAndWait()ইউজারের ক্লিক করার পর, ফলাফল (Yes, No, Cancel) নেয় এবং তার ভিত্তিতে সিদ্ধান্ত নেওয়া হয়।
3. TextInputDialog (ইনপুট গ্রহণ):
TextInputDialog ব্যবহার করে ইউজার থেকে ইনপুট নেওয়া যায়। এটি একটি সাধারণ ডায়ালগ যা টেক্সট ইনপুট ফিল্ড সহ একটি ডায়ালগ উইন্ডো প্রদর্শন করে।
TextInputDialog উদাহরণ:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextInputDialog;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.util.Optional;
public class TextInputDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
// TextInputDialog তৈরি করা
TextInputDialog inputDialog = new TextInputDialog();
inputDialog.setTitle("Input Dialog");
inputDialog.setHeaderText("Please enter your name:");
inputDialog.setContentText("Name:");
// ইউজারের ইনপুট গ্রহণ করা
Optional<String> result = inputDialog.showAndWait();
// যদি ইউজার কিছু ইনপুট দেয়, তবে তা প্রদর্শন করা
result.ifPresent(name -> System.out.println("Hello, " + name));
// Layout and Scene setup
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("Text Input Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- TextInputDialog ব্যবহার করে ইউজারের কাছ থেকে টেক্সট ইনপুট নেওয়া হয়।
showAndWait()মেথডটি ইউজারের ইনপুট বা ডায়ালগ বন্ধ হওয়ার পর ফলাফল ফেরত দেয়।
4. FileChooser Dialog:
FileChooser ডায়ালগ ব্যবহার করে আপনি ফাইল নির্বাচন করতে পারবেন, যা ইউজারকে একটি ফাইল পছন্দ করার সুযোগ দেয়।
FileChooser উদাহরণ:
import javafx.application.Application;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import java.io.File;
public class FileChooserExample extends Application {
@Override
public void start(Stage primaryStage) {
// FileChooser তৈরি করা
FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Text Files", "*.txt"));
// Show open file dialog
File file = fileChooser.showOpenDialog(primaryStage);
if (file != null) {
System.out.println("File selected: " + file.getAbsolutePath());
}
// Layout and Scene setup
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("FileChooser Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- FileChooser ইউজারকে একটি ফাইল সিলেক্ট করার জন্য একটি ডায়ালগ উইন্ডো প্রদর্শন করে।
showOpenDialog()মেথডটি ইউজারকে একটি ফাইল নির্বাচন করার সুযোগ দেয়।
সারাংশ:
- Alert ডায়ালগ সাধারণত ইউজারকে সতর্কবার্তা, তথ্য, বা কনফার্মেশন প্রদর্শন করতে ব্যবহৃত হয়।
- TextInputDialog ইউজার থেকে ইনপুট নিতে ব্যবহৃত হয়।
- FileChooser ইউজারের কাছ থেকে ফাইল নির্বাচন করার জন্য ব্যবহৃত হয়।
- Dialogs এবং Alerts আপনাকে JavaFX অ্যাপ্লিকেশনে সহজেই ইউজার ইন্টারঅ্যাকশন এবং ডায়ালগ উইন্ডো তৈরি করতে সহায়তা করে।
JavaFX Dialogs হল ইউজার ইন্টারফেসের অংশ যা ইউজারের কাছে ইনপুট গ্রহণ করতে, তথ্য প্রদর্শন করতে, বা একটি ক্রিয়া করার জন্য নিশ্চিত করতে ব্যবহৃত হয়। JavaFX-এ Dialogs এবং Alerts ব্যবহৃত হয়, বিশেষত Confirmation Dialogs, Information Dialogs, এবং Custom Dialogs তৈরি করতে। JavaFX বিভিন্ন ধরনের ডায়ালগ প্রদান করে যা বিভিন্ন ধরনের ইন্টারঅ্যাকশন পরিচালনা করতে পারে, যেমন তথ্য প্রদর্শন, নিশ্চিতকরণ, ইত্যাদি।
1. Information Dialog (তথ্য ডায়ালগ)
Information Dialog সাধারণত একটি বার্তা বা তথ্য প্রদর্শন করতে ব্যবহৃত হয়, এবং এটি ইউজারের কোনও ইনপুট ছাড়াই শুধু একটি বার্তা দেখায়।
উদাহরণ: Information Dialog
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class InformationDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
// Create an information alert
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Information Header");
alert.setContentText("This is an informational message.");
// Show the alert
alert.showAndWait();
// Setup scene
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Information Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
AlertType.INFORMATIONব্যবহার করে একটি Information Dialog তৈরি করা হয়েছে।setTitle(),setHeaderText(), এবংsetContentText()মেথড ব্যবহার করে ডায়ালগের টাইটেল, হেডার, এবং কন্টেন্ট বার্তা সেট করা হয়েছে।alert.showAndWait()ডায়ালগ প্রদর্শন করে এবং ইউজারের প্রতিক্রিয়া গ্রহণ করে।
2. Confirmation Dialog (নিশ্চিতকরণ ডায়ালগ)
Confirmation Dialog ইউজার থেকে নিশ্চিতকরণের জন্য ব্যবহৃত হয়, যেমন "আপনি কি এই ক্রিয়াটি করতে চান?"। এটি দুটি অপশন দিয়ে থাকে, যেমন OK এবং Cancel।
উদাহরণ: Confirmation Dialog
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ConfirmationDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
// Create a confirmation alert
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Confirmation Dialog");
alert.setHeaderText("Confirmation Header");
alert.setContentText("Are you sure you want to proceed?");
// Show the alert and wait for the response
alert.showAndWait().ifPresent(response -> {
if (response == ButtonType.OK) {
System.out.println("User clicked OK.");
} else {
System.out.println("User clicked Cancel.");
}
});
// Setup scene
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Confirmation Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
AlertType.CONFIRMATIONব্যবহার করে একটি Confirmation Dialog তৈরি করা হয়েছে।ButtonType.OKএবংButtonType.CANCELদিয়ে দুটি অপশন (OK এবং Cancel) যোগ করা হয়েছে।showAndWait()মেথডের মাধ্যমে ডায়ালগ প্রদর্শিত হয় এবং ইউজারের উত্তর অনুযায়ী ক্রিয়া করা হয়।
3. Custom Dialog (কাস্টম ডায়ালগ)
Custom Dialog তৈরি করার জন্য JavaFX আপনাকে Dialog ক্লাসের সপোর্ট দেয়, যা আপনাকে কাস্টম কন্টেন্ট যেমন TextField, ComboBox ইত্যাদি যোগ করার সুযোগ দেয়। এটি আপনাকে ডায়ালগের ভিতরে যে কোনও কাস্টম UI উপাদান রাখতে সহায়তা করে।
উদাহরণ: Custom Dialog
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Dialog;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class CustomDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
// Create a custom dialog
Dialog<String> dialog = new Dialog<>();
dialog.setTitle("Custom Dialog");
dialog.setHeaderText("Enter your name:");
// Create a TextField for user input
TextField textField = new TextField();
dialog.getDialogPane().setContent(textField);
// Add OK and Cancel buttons
Button okButton = (Button) dialog.getDialogPane().lookupButton(ButtonType.OK);
okButton.setOnAction(e -> {
String name = textField.getText();
System.out.println("User's name: " + name);
dialog.close();
});
// Setup scene
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Custom Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
// Show the dialog and wait for the user input
dialog.showAndWait();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- Custom Dialog তৈরির জন্য Dialog ক্লাস ব্যবহার করা হয়েছে।
- একটি TextField কন্ট্রোল তৈরি করা হয়েছে এবং সেটি ডায়ালগের কন্টেন্ট হিসেবে যোগ করা হয়েছে।
- ButtonType.OK ব্যবহার করে OK বাটন সেট করা হয়েছে এবং ইউজারের ইনপুট নেওয়া হয়েছে।
4. Dialogs এর অন্যান্য ফিচার:
- Dialog.setResult():
- আপনি ডায়ালগ থেকে একটি ফলাফল ফিরে পেতে পারেন। উদাহরণস্বরূপ, একটি TextField এর ইনপুট একটি রিটার্ন ভ্যালু হিসেবে ব্যবহার করতে পারেন।
- Custom Buttons:
- Alert এবং Dialog এ কাস্টম বাটন যোগ করা যেতে পারে, যেমন OK, Cancel, এবং অন্য যেকোনো কাস্টম বাটন।
- Style Customization:
- আপনি JavaFX এর স্টাইলশীট (CSS) ব্যবহার করে ডায়ালগ এবং এলার্ট এর স্টাইল কাস্টমাইজ করতে পারেন।
সারাংশ:
- Information Dialog সাধারণত ইউজারকে কোনো তথ্য বা বার্তা প্রদর্শন করতে ব্যবহৃত হয়।
- Confirmation Dialog ইউজার থেকে নিশ্চিতকরণের জন্য ব্যবহৃত হয়, যেখানে OK এবং Cancel বাটন থাকে।
- Custom Dialog তৈরি করতে JavaFX এর Dialog ক্লাস ব্যবহার করা হয়, যেখানে আপনি কাস্টম কন্টেন্ট এবং কাস্টম বাটন যোগ করতে পারেন।
এগুলি JavaFX অ্যাপ্লিকেশনগুলিতে ইন্টারঅ্যাকশন, ইউজার ইনপুট, এবং তথ্য প্রদর্শনের জন্য গুরুত্বপূর্ণ উপাদান।
JavaFX Alert Class হল একটি ডায়ালগ কন্ট্রোল যা ইউজারের কাছে বার্তা, সতর্কতা, নিশ্চিতকরণ বা তথ্য প্রদর্শনের জন্য ব্যবহৃত হয়। এটি সাধারণত একটি popup ডায়ালগ হিসেবে কাজ করে যা ইউজারের ইন্টারঅ্যাকশন প্রত্যাশা করে এবং এর মাধ্যমে প্রোগ্রামের ফ্লো পরিচালিত হয়। Alert Class এর কিছু গুরুত্বপূর্ণ মেথড রয়েছে, যেমন show(), showAndWait(), এবং close()। নিচে এগুলোর ব্যাখ্যা এবং উদাহরণ দেওয়া হয়েছে:
1. show() Method
show() মেথডটি ডায়ালগ/এলার্টটিকে পর্দায় প্রদর্শন করে। এটি non-blocking মেথড, অর্থাৎ ডায়ালগ দেখানোর পর ইউজার অ্যাপ্লিকেশনের বাকি অংশের সাথে কাজ চালিয়ে যেতে পারে।
ব্যবহার:
show()ডায়ালগটি প্রদর্শন করার পর ইউজার ইউজার ইন্টারঅ্যাকশন না করলেও প্রোগ্রাম চলতে থাকে।
উদাহরণ:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AlertShowExample extends Application {
@Override
public void start(Stage primaryStage) {
// Create an information alert
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Information");
alert.setHeaderText("Information Header");
alert.setContentText("This is an informational message.");
// Show the alert (non-blocking)
alert.show();
// Setup scene
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Alert show() Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
alert.show()মেথডটি ইউজারের কাছে একটি ইনফরমেশন এলার্ট প্রদর্শন করে এবং ইউজারের ইন্টারঅ্যাকশন না হলেও প্রোগ্রাম চালু থাকে।show()একটি non-blocking মেথড, যার মানে হল, এটি ইউজারের প্রতিক্রিয়া পাওয়া না থাকা পর্যন্ত প্রোগ্রাম চালু থাকে।
2. showAndWait() Method
showAndWait() মেথডটি ডায়ালগ বা এলার্ট প্রদর্শন করার পরে ইউজারের প্রতিক্রিয়া (যেমন, OK বা Cancel) অপেক্ষা করে এবং তারপর ডায়ালগটি বন্ধ হয়ে প্রোগ্রাম চালু থাকে। এটি blocking মেথড, অর্থাৎ এটি ইউজারের প্রতিক্রিয়া পর্যন্ত অন্য কোনো কোড চলতে দেয় না।
ব্যবহার:
showAndWait()ইউজারের প্রতিক্রিয়া (যেমন, OK অথবা Cancel) পাওয়ার পরেই প্রোগ্রাম কন্টিনিউ করবে।
উদাহরণ:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AlertShowAndWaitExample extends Application {
@Override
public void start(Stage primaryStage) {
// Create a confirmation alert
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Confirmation Dialog");
alert.setHeaderText("Confirmation Header");
alert.setContentText("Are you sure you want to proceed?");
// Show the alert and wait for the user's response
alert.showAndWait().ifPresent(response -> {
if (response == ButtonType.OK) {
System.out.println("User clicked OK");
} else {
System.out.println("User clicked Cancel");
}
});
// Setup scene
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Alert showAndWait() Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
alert.showAndWait()মেথডটি ডায়ালগ প্রদর্শন করে এবং ইউজারের প্রতিক্রিয়া পাওয়া না হওয়া পর্যন্ত অপেক্ষা করে। এখানে, ইউজার OK অথবা Cancel নির্বাচন করতে পারে।ifPresent()ইউজারের নির্বাচনের উপর ভিত্তি করে সংশ্লিষ্ট অ্যাকশন পরিচালনা করে, যেমন OK বাটনে ক্লিক করলে"User clicked OK"এবং Cancel বাটনে ক্লিক করলে"User clicked Cancel"।
3. close() Method
close() মেথডটি ডায়ালগ বা এলার্টটি বন্ধ করতে ব্যবহৃত হয়। এটি show() বা showAndWait() মেথডের মাধ্যমে খোলার পরেও ডায়ালগ বন্ধ করতে সাহায্য করে।
ব্যবহার:
close()মেথডটি ডায়ালগটি বন্ধ করার জন্য ব্যবহার করা হয়। এটি ইউজারের ক্লিক না করেই প্রোগ্রামatically ডায়ালগটি বন্ধ করতে ব্যবহৃত হতে পারে।
উদাহরণ:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AlertCloseExample extends Application {
@Override
public void start(Stage primaryStage) {
// Create an information alert
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText("Information Header");
alert.setContentText("This dialog will close after a button is clicked.");
// Create a button to close the dialog
Button closeButton = new Button("Close Dialog");
closeButton.setOnAction(e -> alert.close());
// Setup scene
StackPane root = new StackPane();
root.getChildren().add(closeButton);
// Show the alert
alert.show();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Alert close() Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
alert.show()মেথডটি ডায়ালগ প্রদর্শন করে।close()মেথডটি একটি বাটন ক্লিকের মাধ্যমে ডায়ালগটি বন্ধ করতে ব্যবহৃত হয়েছে।
সারাংশ:
show(): এটি একটি non-blocking মেথড যা ডায়ালগ প্রদর্শন করে এবং ইউজারের প্রতিক্রিয়া ছাড়া প্রোগ্রাম চালু থাকতে পারে।showAndWait(): এটি একটি blocking মেথড যা ইউজারের প্রতিক্রিয়া (OK বা Cancel) পাওয়ার পরেই প্রোগ্রাম কন্টিনিউ করতে দেয়।close(): এটি ডায়ালগটি বন্ধ করার জন্য ব্যবহৃত হয়, আপনি এটি প্রোগ্রামatically ডায়ালগটি বন্ধ করতে ব্যবহার করতে পারেন।
এগুলি JavaFX এ Alert বা Dialog কন্ট্রোলের মধ্যে অন্যতম গুরুত্বপূর্ণ মেথড যা ইউজারের ইনপুট এবং ইন্টারঅ্যাকশন পরিচালনা করতে ব্যবহৃত হয়।
JavaFX তে Dialog এবং Alert ব্যবহার করে ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করতে পারেন। আপনি JavaFX Alert ব্যবহার করে সাধারণ ডায়ালগ তৈরি করতে পারেন, এবং Custom Dialog তৈরি করার মাধ্যমে আরও কাস্টমাইজড ইন্টারফেস তৈরি করতে পারেন। এই উদাহরণগুলোতে আমরা কিভাবে এই দুটি তৈরি করা যায় তা দেখাবো।
১. JavaFX Alert তৈরি করা
Alert JavaFX এর একটি প্রি-বিল্ট ক্লাস যা ডায়ালগ বক্স তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত ইনফরমেশন, কনফার্মেশন, সতর্কতা, অথবা ত্রুটি বার্তা দেখানোর জন্য ব্যবহৃত হয়।
Alert Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class AlertExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Show Alert");
// Button এর উপর ক্লিক করলে Alert দেখাবে
btn.setOnAction(e -> {
// Alert তৈরি
Alert alert = new Alert(AlertType.INFORMATION); // ইনফরমেশন টাইপ
alert.setTitle("Information Dialog");
alert.setHeaderText("This is an info alert");
alert.setContentText("Hello! This is a JavaFX alert.");
alert.showAndWait(); // Alert দেখানোর জন্য
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Alert Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে
Alertক্লাসটি ইনফরমেশন ডায়ালগ তৈরি করতে ব্যবহৃত হয়েছে। AlertType.INFORMATIONডায়ালগের টাইপ সেট করে, যেমনINFORMATION,CONFIRMATION,WARNING,ERRORইত্যাদি।alert.setTitle(),alert.setHeaderText(), এবংalert.setContentText()এর মাধ্যমে আপনি ডায়ালগের টাইটেল, হেডার এবং কন্টেন্ট টেক্সট কনফিগার করতে পারেন।alert.showAndWait()মেথড ডায়ালগটিকে প্রদর্শন করে।
২. Custom Dialog তৈরি করা
Custom Dialog তৈরি করতে আপনাকে Dialog ক্লাস এবং বিভিন্ন কন্ট্রোল (যেমন TextField, Button) ব্যবহার করতে হবে। এটি আপনাকে সম্পূর্ণ কাস্টম ডায়ালগ তৈরি করার সুযোগ দেয়।
Custom Dialog Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Dialog;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class CustomDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Open Custom Dialog");
btn.setOnAction(e -> {
// Custom Dialog তৈরি
Dialog<String> dialog = new Dialog<>();
dialog.setTitle("Custom Input Dialog");
// TextField যোগ করা
TextField textField = new TextField();
textField.setPromptText("Enter your name");
// Dialog এর কন্টেন্ট সেট করা
dialog.getDialogPane().setContent(textField);
// OK এবং Cancel বাটন যুক্ত করা
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
// OK বাটন ক্লিক করার পর ইনপুট গ্রহণ
dialog.setResultConverter(dialogButton -> {
if (dialogButton == ButtonType.OK) {
return textField.getText();
}
return null;
});
// Dialog দেখানো
dialog.showAndWait().ifPresent(result -> {
System.out.println("User Input: " + result);
});
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Custom Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- Custom Dialog তৈরি করতে
Dialog<T>ক্লাস ব্যবহার করা হয়েছে। এখানেStringটাইপ ব্যবহার করা হয়েছে, কারণ আমরা টেক্সট ইনপুট নিতে চাই। - TextField ব্যবহার করে ব্যবহারকারীর নাম ইনপুট নেওয়া হচ্ছে।
ButtonType.OKএবংButtonType.CANCELবাটন টাইপ ব্যবহার করা হয়েছে ডায়ালগ বক্সে।setResultConverter()মেথড ব্যবহার করে আমরা OK বাটন ক্লিক করলে ব্যবহারকারীর ইনপুট সংগ্রহ করছি।showAndWait()মেথড ব্যবহার করে ডায়ালগটি প্রদর্শন করা হয় এবংifPresent()এর মাধ্যমে ইনপুট সংগ্রহ করা হয়।
৩. Custom Dialog এ Multiple Inputs
আপনি চাইলে TextField, ComboBox, RadioButton, অথবা অন্যান্য UI উপাদানও ব্যবহার করতে পারেন, যাতে একাধিক ইনপুট গ্রহণ করা যায়।
Multiple Input Custom Dialog Example:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class MultiInputCustomDialogExample extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Open Multi Input Dialog");
btn.setOnAction(e -> {
// Custom Dialog তৈরি
Dialog<String> dialog = new Dialog<>();
dialog.setTitle("Custom Multi Input Dialog");
// VBox লেআউট
VBox vbox = new VBox();
TextField nameField = new TextField();
nameField.setPromptText("Enter your name");
ComboBox<String> genderComboBox = new ComboBox<>();
genderComboBox.getItems().addAll("Male", "Female");
vbox.getChildren().addAll(new Label("Name:"), nameField, new Label("Gender:"), genderComboBox);
// Dialog এর কন্টেন্ট সেট করা
dialog.getDialogPane().setContent(vbox);
// OK এবং Cancel বাটন যুক্ত করা
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
// OK বাটন ক্লিক করার পর ইনপুট গ্রহণ
dialog.setResultConverter(dialogButton -> {
if (dialogButton == ButtonType.OK) {
return "Name: " + nameField.getText() + ", Gender: " + genderComboBox.getValue();
}
return null;
});
// Dialog দেখানো
dialog.showAndWait().ifPresent(result -> {
System.out.println(result);
});
});
VBox root = new VBox();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Multi Input Custom Dialog Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- এখানে আমরা একটি
VBoxলেআউট ব্যবহার করেছি এবংTextFieldএবংComboBoxযোগ করেছি। - ব্যবহারকারী নাম এবং লিঙ্গ ইনপুট দেওয়ার জন্য দুটি ইনপুট ফিল্ড ব্যবহার করতে পারবে।
setResultConverter()মেথডের মাধ্যমে আমরা দুইটি ইনপুট সংগ্রহ করে একত্রে আউটপুট হিসেবে দেখাচ্ছি।
- JavaFX Alert এবং Custom Dialog ব্যবহার করে আপনি JavaFX অ্যাপ্লিকেশনে ব্যবহারকারী ইন্টারঅ্যাকশন সহজে তৈরি করতে পারেন।
- Alert সাধারণত সিস্টেম বার্তা (যেমন ইনফরমেশন, সতর্কতা) দেখানোর জন্য ব্যবহৃত হয়, আর Custom Dialog আপনাকে কাস্টম UI উপাদান দিয়ে ব্যবহারকারীর ইনপুট গ্রহণের সুযোগ দেয়।
- Custom Dialog তৈরি করে আপনি একাধিক ইনপুট (যেমন টেক্সট, কনফার্মেশন, রেডিও বাটন) ব্যবহারকারীর কাছ থেকে সংগ্রহ করতে পারেন এবং সেগুলি প্রক্রিয়া করতে পারেন।
JavaFX এ এই ধরনের কাস্টম ডায়ালগ এবং এলার্ট তৈরি করা আপনাকে একটি সুনির্দিষ্ট এবং ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।
Read more